export const useUserInfoStore = defineStore(
  'userInfo',
  () => {
    const userInfo = ref<UserInfo | null>(null)

    const setUserInfo = (newVal: UserInfo | null) => {
      userInfo.value = newVal
    }

    /**
     * @description 用于校验当前用户是否属于指定角色组。
     *
     * @param groupIds - 待校验的 groupId 数组，
     * 如果当前用户属于传入的 groupIds 中的任何一个角色组，该函数返回 true 。
     * @returns 校验结果。
     */
    const belongTo = (groupIds: string[]) => {
      if (userInfo.value?.group_id?.toString())
        return groupIds.includes(userInfo.value?.group_id?.toString())
    }

    const $reset = () => setUserInfo(null)

    return { userInfo, setUserInfo, belongTo, $reset }
  },
  {
    persist: { enabled: true },
  },
)
